$(function(){
	$("#sidebar-collapse").click(function(){
		$('#sidebar').ace_sidebar('toggleMenu');
		//window.location.reload();
	});
});

/**
 * iframe处理
 */
$(function() {
    //计算元素集合的总宽度
    function calSumWidth(elements) {
        var width = 0;
        $(elements).each(function() {
            width += $(this).outerWidth(true);
        });
        return width;
    }
    
    //滚动到指定选项卡
    function scrollToTab(element) {
        var marginLeftVal = calSumWidth($(element).prevAll()),
        marginRightVal = calSumWidth($(element).nextAll());
        // 可视区域非tab宽度
        var tabOuterWidth = calSumWidth($(".content-tabs").children().not(".menuTabs"));
        //可视区域tab宽度
        var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth;
        //实际滚动宽度
        var scrollVal = 0;
        if ($(".page-tabs-content").outerWidth() < visibleWidth) {
            scrollVal = 0;
        } else if (marginRightVal <= (visibleWidth - $(element).outerWidth(true) - $(element).next().outerWidth(true))) {
            if ((visibleWidth - $(element).next().outerWidth(true)) > marginRightVal) {
                scrollVal = marginLeftVal;
                var tabElement = element;
                while ((scrollVal - $(tabElement).outerWidth()) > ($(".page-tabs-content").outerWidth() - visibleWidth)) {
                    scrollVal -= $(tabElement).prev().outerWidth();
                    tabElement = $(tabElement).prev();
                }
            }
        } else if (marginLeftVal > (visibleWidth - $(element).outerWidth(true) - $(element).prev().outerWidth(true))) {
            scrollVal = marginLeftVal - $(element).prev().outerWidth(true);
        }
        $('.page-tabs-content').animate({
            marginLeft: 0 - scrollVal + 'px'
        },"fast");
    }

    //查看左侧隐藏的选项卡
    $('.tabLeft').on('click', function(){
        var marginLeftVal = Math.abs(parseInt($('.page-tabs-content').css('margin-left')));
        // 可视区域非tab宽度
        var tabOuterWidth = calSumWidth($(".content-tabs").children().not(".menuTabs"));
        //可视区域tab宽度
        var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth;
        //实际滚动宽度
        var scrollVal = 0;
        if ($(".page-tabs-content").width() < visibleWidth) {
            return false;
        } else {
            var tabElement = $(".menuTab:first");
            var offsetVal = 0;
            while ((offsetVal + $(tabElement).outerWidth(true)) <= marginLeftVal) { //找到离当前tab最近的元素
                offsetVal += $(tabElement).outerWidth(true);
                tabElement = $(tabElement).next();
            }
            offsetVal = 0;
            if (calSumWidth($(tabElement).prevAll()) > visibleWidth) {
                while ((offsetVal + $(tabElement).outerWidth(true)) < (visibleWidth) && tabElement.length > 0) {
                    offsetVal += $(tabElement).outerWidth(true);
                    tabElement = $(tabElement).prev();
                }
                scrollVal = calSumWidth($(tabElement).prevAll());
            }
        }
        $('.page-tabs-content').animate({
            marginLeft: 0 - scrollVal + 'px'
        },"fast");
    });

    //查看右侧隐藏的选项卡
    $('.tabRight').on('click', function(){
        var marginLeftVal = Math.abs(parseInt($('.page-tabs-content').css('margin-left')));
        // 可视区域非tab宽度
        var tabOuterWidth = calSumWidth($(".content-tabs").children().not(".menuTabs"));
        //可视区域tab宽度
        var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth;
        //实际滚动宽度
        var scrollVal = 0;
        if ($(".page-tabs-content").width() < visibleWidth) {
            return false;
        } else {
            var tabElement = $(".menuTab:first");
            var offsetVal = 0;
            while ((offsetVal + $(tabElement).outerWidth(true)) <= marginLeftVal) { //找到离当前tab最近的元素
                offsetVal += $(tabElement).outerWidth(true);
                tabElement = $(tabElement).next();
            }
            offsetVal = 0;
            while ((offsetVal + $(tabElement).outerWidth(true)) < (visibleWidth) && tabElement.length > 0) {
                offsetVal += $(tabElement).outerWidth(true);
                tabElement = $(tabElement).next();
            }
            scrollVal = calSumWidth($(tabElement).prevAll());
            if (scrollVal > 0) {
                $('.page-tabs-content').animate({
                    marginLeft: 0 - scrollVal + 'px'
                },"fast");
            }
        }
    });

    // 点击菜单追加或者打开选项卡，必须要返回false才能阻止a标签的点击
    $('.menuItem').on('click', function(){
        // 获取标识数据
        var dataUrl = $(this).attr('href'),
        dataId = $(this).data('id'),
        resId = $(this).attr('res_id'),
        menuName = $.trim($(this).text()),
        target = $(this).attr('target'),
        flag = true;
        if(target == "_blank"){ // 说明打开新页面
        	window.open(dataUrl);
        	return false;
        }
        if (dataUrl == undefined || $.trim(dataUrl).length == 0) return false;
        // 选项卡菜单已存在，打开选项卡
        $('.menuTab').each(function() {
            if ($(this).data('id') == dataId) {
                if (!$(this).hasClass('active')) {
                    $(this).addClass('active').siblings('.menuTab').removeClass('active');
                    scrollToTab(this);
                    // 显示tab对应的内容区
                    $('.iframe-main .ey_iframe').each(function() {
                        if ($(this).data('id') == dataId) {
                            $(this).show().siblings('.ey_iframe').hide();
                            return false;
                        }
                    });
                }
                flag = false;
                return false;
            }
        });
        // 选项卡菜单不存在，追加一个选项卡
        if (flag) {
        	var fav_active = $(".nav-list .menuItem[data-id='"+dataId+"']").length == 1;
            var str = '<a href="javascript:;" class="active menuTab" res_id="'+resId+'" data-id="'+dataId+'">' + menuName 
            	+ '<i class="fa fa-times-circle close-btn" title="关闭"></i>'
            	+ ' <i class="fa fa-star fav-btn '+(fav_active ? 'fav-btn-active' : '')+'" title="收藏"></i></a>';
            $('.menuTab').removeClass('active');
            // 添加选项卡对应的iframe
            var str1 = '<iframe class="ey_iframe" name="iframe'+resId+'" width="100%" height="100%" src="'+dataUrl+'" frameborder="0" data-id="'+dataId+'" seamless></iframe>';
            $('.iframe-main').find('iframe.ey_iframe').hide().parents('.iframe-main').append(str1);
            $.alert.loading();
            $('.iframe-main iframe:visible').load(function () {
            	$.alert.closeLoading();
            });
            // 添加选项卡
            $('.menuTabs .page-tabs-content').append(str);
            scrollToTab($('.menuTab.active'));
        }
        activeMenu();
        return false;
    });

    // 关闭选项卡菜单
    $('.menuTabs').on('click', '.menuTab i.close-btn', function(){
        var closeTabId = $(this).parents('.menuTab').data('id');
        var currentWidth = $(this).parents('.menuTab').width();
        // 当前元素处于活动状态
        if ($(this).parents('.menuTab').hasClass('active')) {
            // 当前元素后面有同辈元素，使后面的一个元素处于活动状态
            if ($(this).parents('.menuTab').next('.menuTab').size()) {
                var activeId = $(this).parents('.menuTab').next('.menuTab:eq(0)').data('id');
                $(this).parents('.menuTab').next('.menuTab:eq(0)').addClass('active');
                $('.iframe-main .ey_iframe').each(function() {
                    if ($(this).data('id') == activeId) {
                        $(this).show().siblings('.ey_iframe').hide();
                        return false;
                    }
                });
                var marginLeftVal = parseInt($('.page-tabs-content').css('margin-left'));
                if (marginLeftVal < 0) {
                    $('.page-tabs-content').animate({
                        marginLeft: (marginLeftVal + currentWidth) + 'px'
                    },"fast");
                }
                //  移除当前选项卡
                $(this).parents('.menuTab').remove();
                // 移除tab对应的内容区
                $('.iframe-main .ey_iframe').each(function() {
                    if ($(this).data('id') == closeTabId) {
                        $(this).remove();
                        return false;
                    }
                });
            }
            // 当前元素后面没有同辈元素，使当前元素的上一个元素处于活动状态
            if ($(this).parents('.menuTab').prev('.menuTab').size()) {
                var activeId = $(this).parents('.menuTab').prev('.menuTab:last').data('id');
                $(this).parents('.menuTab').prev('.menuTab:last').addClass('active');
                $('.iframe-main .ey_iframe').each(function() {
                    if ($(this).data('id') == activeId) {
                        $(this).show().siblings('.ey_iframe').hide();
                        return false;
                    }
                });
                //  移除当前选项卡
                $(this).parents('.menuTab').remove();
                // 移除tab对应的内容区
                $('.iframe-main .ey_iframe').each(function() {
                    if ($(this).data('id') == closeTabId) {
                        $(this).remove();
                        return false;
                    }
                });
            }
        }
        // 当前元素不处于活动状态
        else {
            //  移除当前选项卡
            $(this).parents('.menuTab').remove();
            // 移除相应tab对应的内容区
            $('.iframe-main .ey_iframe').each(function() {
                if ($(this).data('id') == closeTabId) {
                    $(this).remove();
                    return false;
                }
            });
            scrollToTab($('.menuTab.active'));
        }
        return false;
    });

    // 点击某个选项卡
    $('.menuTabs').on('click', '.menuTab', function(){
    	if (!$(this).hasClass('active')) {
            var currentId = $(this).data('id');
            // 显示tab对应的内容区
            $('.iframe-main .ey_iframe').each(function() {
                if ($(this).data('id') == currentId) {
                    $(this).show().siblings('.ey_iframe').hide();
                    return false;
                }
            });
            $(this).addClass('active').siblings('.menuTab').removeClass('active');
            scrollToTab(this);
            activeMenu();
        }
    });
    
    // 点击收藏按钮或者取消收藏
    $('.menuTabs').on('click', '.menuTab i.fav-btn', function(){
    	var me = $(this),actived = me.hasClass("fav-btn-active"),$menuTab = me.parent("a.menuTab");
    	var dataId = $menuTab.data("id"),resId = $menuTab.attr("res_id"),name = $menuTab.text();
    	$.post(path+"/fav/modify",{fav:actived,dataId:dataId,resId:resId,name:name},function(result){
    		if(result.state == web_status.SUCCESS){ // 表示收藏获取取消成功
    			if(actived){ // 表示取消成功
    				$(".nav-list .menuItem[data-id='"+dataId+"']").parent("li").remove();
    				me.removeClass("fav-btn-active");
    			}else{ // 表示收藏成功
    				var $a = $(".navbar-nav .menuItem[data-id='"+dataId+"']"); // 查找顶部菜单的a标签
    				var cls = "fa fa-tasks";
    				if($a.length > 0){
    					cls = $a.find("i").attr("class").replace("ace-icon","").replace("bigger-110","")
    						.replace("bigger-160","").replace("blue","");
    				}
    				var html = "";
    				html += '<li class="">';
	    				html += '<a class="menuItem" res_id="'+resId+'" data-id="'+dataId+'" href="'+dataId+'">';
	    					html += '<i class="ace-menu-icon '+cls+'"></i>';
	    					html += '<span class="ace-menu-text">&nbsp;&nbsp;'+name+'&nbsp;&nbsp;</span>';
	    				html += '</a>';
					html += '</li>';
					$(".nav-list").append(html);
					me.addClass("fav-btn-active");
    			}
    		}
    	});
    });

    // 刷新按钮
    $('.tabReload').on('click', function(){
    	var currentId = $('.page-tabs-content').find('.active').attr('data-id');
    	var target = $('.ey_iframe[data-id="' + currentId + '"]');
        var url = target.attr('src');
        target.attr('src', url).ready();
    });

    // 双击选项卡全屏显示
    $('.menuTabs').on('dblclick', '.menuTab', function(){
    	 $('#iframe_main').toggleClass('max');
         $('#ax_close_max').show();
    });

    // 关闭全屏
    $('#ax_close_max').click(function(){
    	$('#iframe_main').toggleClass('max');
    	$('#ax_close_max').hide();
    });
    
    // 激活选中的菜单包括顶部和左侧
    function activeMenu(){
    	$(".nav li").removeClass('active'); // 清空所有选中
    	var dataId = $(".menuTab.active").data("id");
    	$(".menuItem[data-id='"+dataId+"']").parents("li").addClass("active");
    }
});